﻿using FPSO.Models.Constant;
using FPSO.Models.TagMapping;
using Microsoft.Practices.Prism.ViewModel;

namespace FPSO.Models.ViewModel.Controls
{
	/// <summary>
	/// NOTICE 外输和倒舱界面相关控件绑定的数据
	/// </summary>
	public class UCOutAndSwapViewModel : NotificationObject
	{
		public UCOutAndSwapViewModel()
        {
            NO1_COT_P = new TankOilViewModel("NO1_COT_P", TankConstant.GetTankVolume("NO1_COT_P"));
            NO1_COT_S = new TankOilViewModel("NO1_COT_S", TankConstant.GetTankVolume("NO1_COT_S"));
            NO2_COT_P = new TankOilViewModel("NO2_COT_P", TankConstant.GetTankVolume("NO2_COT_P"));
            NO2_COT_S = new TankOilViewModel("NO2_COT_S", TankConstant.GetTankVolume("NO2_COT_S"));
            NO3_COT_P = new TankOilViewModel("NO3_COT_P", TankConstant.GetTankVolume("NO3_COT_P"));
            NO3_COT_S = new TankOilViewModel("NO3_COT_S", TankConstant.GetTankVolume("NO3_COT_S"));
            NO4_COT_P = new TankOilViewModel("NO4_COT_P", TankConstant.GetTankVolume("NO4_COT_P"));
            NO4_COT_S = new TankOilViewModel("NO4_COT_S", TankConstant.GetTankVolume("NO4_COT_S"));
            NO5_COT_P = new TankOilViewModel("NO5_COT_P", TankConstant.GetTankVolume("NO5_COT_P"));
            NO5_COT_S = new TankOilViewModel("NO5_COT_S", TankConstant.GetTankVolume("NO5_COT_S"));
            OFFSPECTANK = new TankOilViewModel("OFFSPECTANK", TankConstant.GetTankVolume("OFFSPECTANK"));
            NO1_SLOP = new TankOilViewModel("NO1_SLOP", TankConstant.GetTankVolume("NO1_SLOP"));
            NO2_SLOP = new TankOilViewModel("NO2_SLOP", TankConstant.GetTankVolume("NO2_SLOP"));

            hull_bfv_91199 = new ValveViewModel("HULL_BFV_91199");
            hull_bfv_91201 = new ValveViewModel("HULL_BFV_91201");
            hull_bfv_91206 = new ValveViewModel("HULL_BFV_91206");
            hull_bfv_91202 = new ValveViewModel("HULL_BFV_91202");
            hull_bfv_91205 = new ValveViewModel("HULL_BFV_91205");
            hull_bfv_91198 = new ValveViewModel("HULL_BFV_91198");
            hull_bfv_91200 = new ValveViewModel("HULL_BFV_91200");
            hull_bfv_91207 = new ValveViewModel("HULL_BFV_91207");
            hull_bfv_91203 = new ValveViewModel("HULL_BFV_91203");
            hull_bfv_91204 = new ValveViewModel("HULL_BFV_91204");
            hull_bfv_91249 = new ValveViewModel("HULL_BFV_91249");
            hull_bfv_91250 = new ValveViewModel("HULL_BFV_91250");
            hull_bfv_91247 = new ValveViewModel("HULL_BFV_91247");
            hull_bfv_91248 = new ValveViewModel("HULL_BFV_91248");
            hull_bfv_91243 = new ValveViewModel("HULL_BFV_91243");
            hull_bfv_91244 = new ValveViewModel("HULL_BFV_91244");
            hull_bfv_91241 = new ValveViewModel("HULL_BFV_91241");
            hull_bfv_91242 = new ValveViewModel("HULL_BFV_91242");
            hull_bfv_91255 = new ValveViewModel("HULL_BFV_91255");
            hull_bfv_91256 = new ValveViewModel("HULL_BFV_91256");
            hull_bfv_91253 = new ValveViewModel("HULL_BFV_91253");
            hull_bfv_91254 = new ValveViewModel("HULL_BFV_91254");
            hull_bfv_91237 = new ValveViewModel("HULL_BFV_91237");
            hull_bfv_91238 = new ValveViewModel("HULL_BFV_91238");
            hull_bfv_91235 = new ValveViewModel("HULL_BFV_91235");
            hull_bfv_91236 = new ValveViewModel("HULL_BFV_91236");
            hull_bfv_91231 = new ValveViewModel("HULL_BFV_91231");
            hull_bfv_91232 = new ValveViewModel("HULL_BFV_91232");
            hull_bfv_91229 = new ValveViewModel("HULL_BFV_91229");
            hull_bfv_91230 = new ValveViewModel("HULL_BFV_91230");
            hull_bfv_91252 = new ValveViewModel("HULL_BFV_91252");
            hull_bfv_91251 = new ValveViewModel("HULL_BFV_91251");
            hull_bfv_91246 = new ValveViewModel("HULL_BFV_91246");
            hull_bfv_91245 = new ValveViewModel("HULL_BFV_91245");
            hull_bfv_91258 = new ValveViewModel("HULL_BFV_91258");
            hull_bfv_91257 = new ValveViewModel("HULL_BFV_91257");
            hull_bfv_91240 = new ValveViewModel("HULL_BFV_91240");
            hull_bfv_91239 = new ValveViewModel("HULL_BFV_91239");
            hull_bfv_91234 = new ValveViewModel("HULL_BFV_91234");
            hull_bfv_91233 = new ValveViewModel("HULL_BFV_91233");

            hull_p_9101A = new PumpViewModel("HULL_P_9101A");
            hull_p_9101B = new PumpViewModel("HULL_P_9101B");
            hull_p_9101C = new PumpViewModel("HULL_P_9101C");
            hull_p_9101D = new PumpViewModel("HULL_P_9101D");
            hull_p_9101E = new PumpViewModel("HULL_P_9101E");
            hull_p_9101F = new PumpViewModel("HULL_P_9101F");
            hull_p_9101G = new PumpViewModel("HULL_P_9101G");
            hull_p_9101H = new PumpViewModel("HULL_P_9101H");
            hull_p_9101I = new PumpViewModel("HULL_P_9101I");
            hull_p_9101J = new PumpViewModel("HULL_P_9101J");
        }

        //货油舱控件（待核对）
        private TankOilViewModel no5_cot_p;
        private TankOilViewModel no4_cot_p;
        private TankOilViewModel no3_cot_p;
        private TankOilViewModel no2_cot_p;
        private TankOilViewModel no1_cot_p;
        private TankOilViewModel no5_cot_s;
        private TankOilViewModel no4_cot_s;
        private TankOilViewModel no3_cot_s;
        private TankOilViewModel no2_cot_s;
        private TankOilViewModel no1_cot_s;
 
		private TankOilViewModel offspectank;
        private TankOilViewModel no1_slop;
        private TankOilViewModel no2_slop;

        [FieldMapper("NO5_COT_P")]
        public TankOilViewModel NO5_COT_P
        {
            get { return no5_cot_p; }
            set
            {
                no5_cot_p = value;
                RaisePropertyChanged("NO5_COT_P");
            }
        }

        [FieldMapper("NO4_COT_P")]
        public TankOilViewModel NO4_COT_P
        {
            get { return no4_cot_p; }
            set
            {
                no4_cot_p = value;
                RaisePropertyChanged("NO4_COT_P");
            }
        }

        [FieldMapper("NO3_COT_P")]
        public TankOilViewModel NO3_COT_P
        {
            get { return no3_cot_p; }
            set
            {
                no3_cot_p = value;
                RaisePropertyChanged("NO3_COT_P");
            }
        }

        [FieldMapper("NO2_COT_P")]
        public TankOilViewModel NO2_COT_P
        {
            get { return no2_cot_p; }
            set
            {
                no2_cot_p = value;
                RaisePropertyChanged("NO2_COT_P");
            }
        }

        [FieldMapper("NO1_COT_P")]
        public TankOilViewModel NO1_COT_P
        {
            get { return no1_cot_p; }
            set
            {
                no1_cot_p = value;
                RaisePropertyChanged("NO1_COT_P");
            }
        }

        [FieldMapper("NO5_COT_S")]
        public TankOilViewModel NO5_COT_S
        {
            get { return no5_cot_s; }
            set
            {
                no5_cot_s = value;
                RaisePropertyChanged("NO5_COT_S");
            }
        }

        [FieldMapper("NO4_COT_S")]
        public TankOilViewModel NO4_COT_S
        {
            get { return no4_cot_s; }
            set
            {
                no4_cot_s = value;
                RaisePropertyChanged("NO4_COT_S");
            }
        }

        [FieldMapper("NO3_COT_S")]
        public TankOilViewModel NO3_COT_S
        {
            get { return no3_cot_s; }
            set
            {
                no3_cot_s = value;
                RaisePropertyChanged("NO3_COT_S");
            }
        }

        [FieldMapper("NO2_COT_S")]
        public TankOilViewModel NO2_COT_S
        {
            get { return no2_cot_s; }
            set
            {
                no2_cot_s = value;
                RaisePropertyChanged("NO2_COT_S");
            }
        }

        [FieldMapper("NO1_COT_S")]
        public TankOilViewModel NO1_COT_S
        {
            get { return no1_cot_s; }
            set
            {
                no1_cot_s = value;
                RaisePropertyChanged("NO1_COT_S");
            }
        }

        [FieldMapper("OFFSPECTANK")]
        public TankOilViewModel OFFSPECTANK
        {
            get { return offspectank; }
            set
            {
                offspectank = value;
                RaisePropertyChanged("OFFSPECTANK");
            }
        }

        [FieldMapper("NO1_SLOP")]
        public TankOilViewModel NO1_SLOP
        {
            get { return no1_slop; }
            set
            {
                no1_slop = value;
                RaisePropertyChanged("NO1_SLOP");
            }
        }


        [FieldMapper("NO2_SLOP")]
        public TankOilViewModel NO2_SLOP
        {
            get { return no2_slop; }
            set
            {
                no2_slop = value;
                RaisePropertyChanged("NO2_SLOP");
            }
        }

        //阀门控件，需与外输、导舱管线图中阀门一一对应（待核对）
        private ValveViewModel hull_bfv_91199;
        private ValveViewModel hull_bfv_91201;
        private ValveViewModel hull_bfv_91206;
        private ValveViewModel hull_bfv_91202;
        private ValveViewModel hull_bfv_91205;
        private ValveViewModel hull_bfv_91198;
        private ValveViewModel hull_bfv_91200;
        private ValveViewModel hull_bfv_91207;
        private ValveViewModel hull_bfv_91203;
        private ValveViewModel hull_bfv_91204;
        private ValveViewModel hull_bfv_91249;
        private ValveViewModel hull_bfv_91250;
        private ValveViewModel hull_bfv_91247;
        private ValveViewModel hull_bfv_91248;
        private ValveViewModel hull_bfv_91243;
        private ValveViewModel hull_bfv_91244;
        private ValveViewModel hull_bfv_91241;
        private ValveViewModel hull_bfv_91242;
        private ValveViewModel hull_bfv_91255;
        private ValveViewModel hull_bfv_91256;
        private ValveViewModel hull_bfv_91253;
        private ValveViewModel hull_bfv_91254;
        private ValveViewModel hull_bfv_91237;
        private ValveViewModel hull_bfv_91238;
        private ValveViewModel hull_bfv_91235;
        private ValveViewModel hull_bfv_91236;
        private ValveViewModel hull_bfv_91231;
        private ValveViewModel hull_bfv_91232;
        private ValveViewModel hull_bfv_91229;
        private ValveViewModel hull_bfv_91230;
        private ValveViewModel hull_bfv_91252;
        private ValveViewModel hull_bfv_91251;
        private ValveViewModel hull_bfv_91246;
        private ValveViewModel hull_bfv_91245;
        private ValveViewModel hull_bfv_91258;
        private ValveViewModel hull_bfv_91257;
        private ValveViewModel hull_bfv_91240;
        private ValveViewModel hull_bfv_91239;
        private ValveViewModel hull_bfv_91234;
        private ValveViewModel hull_bfv_91233;

        [FieldMapper("HULL_BFV_91199")]
        public ValveViewModel HULL_BFV_91199 { get { return hull_bfv_91199; } set { hull_bfv_91199 = value; RaisePropertyChanged("HULL_BFV_91199"); } }
        [FieldMapper("HULL_BFV_91201")]
        public ValveViewModel HULL_BFV_91201 { get { return hull_bfv_91201; } set { hull_bfv_91201 = value; RaisePropertyChanged("HULL_BFV_91201"); } }
        [FieldMapper("HULL_BFV_91206")]
        public ValveViewModel HULL_BFV_91206 { get { return hull_bfv_91206; } set { hull_bfv_91206 = value; RaisePropertyChanged("HULL_BFV_91206"); } }
        [FieldMapper("HULL_BFV_91202")]
        public ValveViewModel HULL_BFV_91202 { get { return hull_bfv_91202; } set { hull_bfv_91202 = value; RaisePropertyChanged("HULL_BFV_91202"); } }
        [FieldMapper("HULL_BFV_91205")]
        public ValveViewModel HULL_BFV_91205 { get { return hull_bfv_91205; } set { hull_bfv_91205 = value; RaisePropertyChanged("HULL_BFV_91205"); } }
        [FieldMapper("HULL_BFV_91198")]
        public ValveViewModel HULL_BFV_91198 { get { return hull_bfv_91198; } set { hull_bfv_91198 = value; RaisePropertyChanged("HULL_BFV_91198"); } }
        [FieldMapper("HULL_BFV_91200")]
        public ValveViewModel HULL_BFV_91200 { get { return hull_bfv_91200; } set { hull_bfv_91200 = value; RaisePropertyChanged("HULL_BFV_91200"); } }
        [FieldMapper("HULL_BFV_91207")]
        public ValveViewModel HULL_BFV_91207 { get { return hull_bfv_91207; } set { hull_bfv_91207 = value; RaisePropertyChanged("HULL_BFV_91207"); } }
        [FieldMapper("HULL_BFV_91203")]
        public ValveViewModel HULL_BFV_91203 { get { return hull_bfv_91203; } set { hull_bfv_91203 = value; RaisePropertyChanged("HULL_BFV_91203"); } }
        [FieldMapper("HULL_BFV_91204")]
        public ValveViewModel HULL_BFV_91204 { get { return hull_bfv_91204; } set { hull_bfv_91204 = value; RaisePropertyChanged("HULL_BFV_91204"); } }
        [FieldMapper("HULL_BFV_91249")]
        public ValveViewModel HULL_BFV_91249 { get { return hull_bfv_91249; } set { hull_bfv_91249 = value; RaisePropertyChanged("HULL_BFV_91249"); } }
        [FieldMapper("HULL_BFV_91250")]
        public ValveViewModel HULL_BFV_91250 { get { return hull_bfv_91250; } set { hull_bfv_91250 = value; RaisePropertyChanged("HULL_BFV_91250"); } }
        [FieldMapper("HULL_BFV_91247")]
        public ValveViewModel HULL_BFV_91247 { get { return hull_bfv_91247; } set { hull_bfv_91247 = value; RaisePropertyChanged("HULL_BFV_91247"); } }
        [FieldMapper("HULL_BFV_91248")]
        public ValveViewModel HULL_BFV_91248 { get { return hull_bfv_91248; } set { hull_bfv_91248 = value; RaisePropertyChanged("HULL_BFV_91248"); } }
        [FieldMapper("HULL_BFV_91243")]
        public ValveViewModel HULL_BFV_91243 { get { return hull_bfv_91243; } set { hull_bfv_91243 = value; RaisePropertyChanged("HULL_BFV_91243"); } }
        [FieldMapper("HULL_BFV_91244")]
        public ValveViewModel HULL_BFV_91244 { get { return hull_bfv_91244; } set { hull_bfv_91244 = value; RaisePropertyChanged("HULL_BFV_91244"); } }
        [FieldMapper("HULL_BFV_91241")]
        public ValveViewModel HULL_BFV_91241 { get { return hull_bfv_91241; } set { hull_bfv_91241 = value; RaisePropertyChanged("HULL_BFV_91241"); } }
        [FieldMapper("HULL_BFV_91242")]
        public ValveViewModel HULL_BFV_91242 { get { return hull_bfv_91242; } set { hull_bfv_91242 = value; RaisePropertyChanged("HULL_BFV_91242"); } }
        [FieldMapper("HULL_BFV_91255")]
        public ValveViewModel HULL_BFV_91255 { get { return hull_bfv_91255; } set { hull_bfv_91255 = value; RaisePropertyChanged("HULL_BFV_91255"); } }
        [FieldMapper("HULL_BFV_91256")]
        public ValveViewModel HULL_BFV_91256 { get { return hull_bfv_91256; } set { hull_bfv_91256 = value; RaisePropertyChanged("HULL_BFV_91256"); } }
        [FieldMapper("HULL_BFV_91253")]
        public ValveViewModel HULL_BFV_91253 { get { return hull_bfv_91253; } set { hull_bfv_91253 = value; RaisePropertyChanged("HULL_BFV_91253"); } }
        [FieldMapper("HULL_BFV_91254")]
        public ValveViewModel HULL_BFV_91254 { get { return hull_bfv_91254; } set { hull_bfv_91254 = value; RaisePropertyChanged("HULL_BFV_91254"); } }
        [FieldMapper("HULL_BFV_91237")]
        public ValveViewModel HULL_BFV_91237 { get { return hull_bfv_91237; } set { hull_bfv_91237 = value; RaisePropertyChanged("HULL_BFV_91237"); } }
        [FieldMapper("HULL_BFV_91238")]
        public ValveViewModel HULL_BFV_91238 { get { return hull_bfv_91238; } set { hull_bfv_91238 = value; RaisePropertyChanged("HULL_BFV_91238"); } }
        [FieldMapper("HULL_BFV_91235")]
        public ValveViewModel HULL_BFV_91235 { get { return hull_bfv_91235; } set { hull_bfv_91235 = value; RaisePropertyChanged("HULL_BFV_91235"); } }
        [FieldMapper("HULL_BFV_91236")]
        public ValveViewModel HULL_BFV_91236 { get { return hull_bfv_91236; } set { hull_bfv_91236 = value; RaisePropertyChanged("HULL_BFV_91236"); } }
        [FieldMapper("HULL_BFV_91231")]
        public ValveViewModel HULL_BFV_91231 { get { return hull_bfv_91231; } set { hull_bfv_91231 = value; RaisePropertyChanged("HULL_BFV_91231"); } }
        [FieldMapper("HULL_BFV_91232")]
        public ValveViewModel HULL_BFV_91232 { get { return hull_bfv_91232; } set { hull_bfv_91232 = value; RaisePropertyChanged("HULL_BFV_91232"); } }
        [FieldMapper("HULL_BFV_91229")]
        public ValveViewModel HULL_BFV_91229 { get { return hull_bfv_91229; } set { hull_bfv_91229 = value; RaisePropertyChanged("HULL_BFV_91229"); } }
        [FieldMapper("HULL_BFV_91230")]
        public ValveViewModel HULL_BFV_91230 { get { return hull_bfv_91230; } set { hull_bfv_91230 = value; RaisePropertyChanged("HULL_BFV_91230"); } }
        [FieldMapper("HULL_BFV_91252")]
        public ValveViewModel HULL_BFV_91252 { get { return hull_bfv_91252; } set { hull_bfv_91252 = value; RaisePropertyChanged("HULL_BFV_91252"); } }
        [FieldMapper("HULL_BFV_91251")]
        public ValveViewModel HULL_BFV_91251 { get { return hull_bfv_91251; } set { hull_bfv_91251 = value; RaisePropertyChanged("HULL_BFV_91251"); } }
        [FieldMapper("HULL_BFV_91246")]
        public ValveViewModel HULL_BFV_91246 { get { return hull_bfv_91246; } set { hull_bfv_91246 = value; RaisePropertyChanged("HULL_BFV_91246"); } }
        [FieldMapper("HULL_BFV_91245")]
        public ValveViewModel HULL_BFV_91245 { get { return hull_bfv_91245; } set { hull_bfv_91245 = value; RaisePropertyChanged("HULL_BFV_91245"); } }
        [FieldMapper("HULL_BFV_91258")]
        public ValveViewModel HULL_BFV_91258 { get { return hull_bfv_91258; } set { hull_bfv_91258 = value; RaisePropertyChanged("HULL_BFV_91258"); } }
        [FieldMapper("HULL_BFV_91257")]
        public ValveViewModel HULL_BFV_91257 { get { return hull_bfv_91257; } set { hull_bfv_91257 = value; RaisePropertyChanged("HULL_BFV_91257"); } }
        [FieldMapper("HULL_BFV_91240")]
        public ValveViewModel HULL_BFV_91240 { get { return hull_bfv_91240; } set { hull_bfv_91240 = value; RaisePropertyChanged("HULL_BFV_91240"); } }
        [FieldMapper("HULL_BFV_91239")]
        public ValveViewModel HULL_BFV_91239 { get { return hull_bfv_91239; } set { hull_bfv_91239 = value; RaisePropertyChanged("HULL_BFV_91239"); } }
        [FieldMapper("HULL_BFV_91234")]
        public ValveViewModel HULL_BFV_91234 { get { return hull_bfv_91234; } set { hull_bfv_91234 = value; RaisePropertyChanged("HULL_BFV_91234"); } }
        [FieldMapper("HULL_BFV_91233")]
        public ValveViewModel HULL_BFV_91233 { get { return hull_bfv_91233; } set { hull_bfv_91233 = value; RaisePropertyChanged("HULL_BFV_91233"); } }

        //泵控件，需与外输、导舱管线图中泵一一对应（待核对）
        private PumpViewModel hull_p_9101A;
        private PumpViewModel hull_p_9101B;
        private PumpViewModel hull_p_9101C;
        private PumpViewModel hull_p_9101D;
        private PumpViewModel hull_p_9101E;
        private PumpViewModel hull_p_9101F;
        private PumpViewModel hull_p_9101G;
        private PumpViewModel hull_p_9101H;
        private PumpViewModel hull_p_9101I;
        private PumpViewModel hull_p_9101J;

        [FieldMapper("HULL_P_9101A")]
        public PumpViewModel HULL_P_9101A { get { return hull_p_9101A; } set { hull_p_9101A = value; RaisePropertyChanged("HULL_P_9101A"); } }
        [FieldMapper("HULL_P_9101B")]
        public PumpViewModel HULL_P_9101B { get { return hull_p_9101B; } set { hull_p_9101B = value; RaisePropertyChanged("HULL_P_9101B"); } }
        [FieldMapper("HULL_P_9101C")]
        public PumpViewModel HULL_P_9101C { get { return hull_p_9101C; } set { hull_p_9101C = value; RaisePropertyChanged("HULL_P_9101C"); } }
        [FieldMapper("HULL_P_9101D")]
        public PumpViewModel HULL_P_9101D { get { return hull_p_9101D; } set { hull_p_9101D = value; RaisePropertyChanged("HULL_P_9101D"); } }
        [FieldMapper("HULL_P_9101E")]
        public PumpViewModel HULL_P_9101E { get { return hull_p_9101E; } set { hull_p_9101E = value; RaisePropertyChanged("HULL_P_9101E"); } }
        [FieldMapper("HULL_P_9101F")]
        public PumpViewModel HULL_P_9101F { get { return hull_p_9101F; } set { hull_p_9101F = value; RaisePropertyChanged("HULL_P_9101F"); } }
        [FieldMapper("HULL_P_9101G")]
        public PumpViewModel HULL_P_9101G { get { return hull_p_9101G; } set { hull_p_9101G = value; RaisePropertyChanged("HULL_P_9101G"); } }
        [FieldMapper("HULL_P_9101H")]
        public PumpViewModel HULL_P_9101H { get { return hull_p_9101H; } set { hull_p_9101H = value; RaisePropertyChanged("HULL_P_9101H"); } }
        [FieldMapper("HULL_P_9101I")]
        public PumpViewModel HULL_P_9101I { get { return hull_p_9101I; } set { hull_p_9101I = value; RaisePropertyChanged("HULL_P_9101I"); } }
        [FieldMapper("HULL_P_9101J")]
        public PumpViewModel HULL_P_9101J { get { return hull_p_9101J; } set { hull_p_9101J = value; RaisePropertyChanged("HULL_P_9101J"); } }

    }
}
